Micron Document
πŸŽ–οΈGitΠ―Ρ€Π°πŸŽ–οΈ

Node / meshtastic / Meshtastic-Android rns://bfb3becae4b7568796ac5276b6bc5741/meshtastic/Meshtastic-Android
Mirrored from https://github.com/meshtastic/Meshtastic-Android.git synced 11m ago


Android application for Meshtastic


-─
<p align="center">
<img src=".github/meshtastic_logo.png" alt="Meshtastic Logo" width="200"/>
</p>
<h1 align="center">Meshtastic-Android</h1>

![Android CI](https://github.com/meshtastic/Meshtastic-Android/actions/workflows/pull-request.yml)
![codecov](https://codecov.io/gh/meshtastic/Meshtastic-Android)
![Crowdin](https://crowdin.meshtastic.org/android)
![CLA assistant](https://cla-assistant.io/meshtastic/Meshtastic-Android)
![Fiscal Contributors](https://opencollective.com/meshtastic/)
![Vercel](https://vercel.com?utmsource=meshtastic&utmcampaign=oss)
![Revved up by Develocity](https://community.develocity.cloud/scans?search.rootProjectNames=MeshtasticAndroid)

This is a tool for using Android (and Compose Desktop) with open-source mesh radios. For more information see our webpage: meshtastic.org. If you are looking for the device side code, see here.

If you have questions or feedback please Join our discussion forum or the Discord Group. We would love to hear from you!

Features

Highlights from the 2.8.0 release:

β€’ Mesh network discovery to surface nodes and channels around you, with Mesh Beacon invitations for joining nearby meshes.
β€’ Waypoint geofences β€” draw zones on the map and get alerts when nodes cross them.
β€’ Secure key backup β€” encrypted backup, restore, and delete for your device security keys.
β€’ NFC sharing β€” write shared contacts and channels to NFC tags.
β€’ XEdDSA packet signing indicators in the node and messaging UI.
β€’ Air-quality telemetry β€” PM1.0, PM2.5, PM10, and COβ‚‚ readings from supported sensors.
β€’ App Functions / system-AI integration so on-device assistants can trigger common workflows.

Get Meshtastic

The easiest and fastest way to get the latest releases is to use our GitHub releases. It is recommended to use these with Obtainium to get the latest updates automatically.

With Obtainium installed, tap a link below on your phone to set it up with everything pre-configured. The T383838google flavor adds Google Crashlytics and Google Maps; T383838fdroid has no Google dependencies.

<!-- BEGIN GENERATED LINKS: obtainium/generate-links.py -->

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”
β”‚ Channel β”‚ `BT383838`Fdddgoogle`f`b flavor β”‚ `BT383838`Fdddfd`f`b… β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€
β”‚ Latest release β”‚ Add. These links, files and the table above are generated β€” see obtainium/.

Alternatively, these other providers are also available, but may be slower to update.

[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
width="24%">](https://f-droid.org/packages/com.geeksville.mesh/)
[<img src="https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png"
alt="Get it on IzzyOnDroid"
width="24%">](https://apt.izzysoft.de/fdroid/index/apk/com.geeksville.mesh)
[<img src="https://github.com/machiav3lli/oandbackupx/blob/034b226cea5c1b30eb4f6a6f313e4dadcbb0ece4/badge_github.png"
alt="Get it on GitHub"
width="24%">](https://github.com/meshtastic/Meshtastic-Android/releases)
[<img src="https://play.google.com/intl/enus/badges/static/images/badges/enbadgewebgeneric.png"
alt="Download at https://play.google.com/store/apps/details?id=com.geeksville.mesh]"
width="24%">](https://play.google.com/store/apps/details?id=com.geeksville.mesh&referrer=utm_source%3Dgithub-android-readme)

The play store is the last to update of these options, but if you want to join the Play Store testing program go to this URL and opt-in to become a tester.
If you encounter any problems or have questions, ask us on the discord, create an issue, or post in the forum and we'll help as we can.

Desktop

Meshtastic Desktop installers (macOS DMG, Windows MSI/EXE, Linux DEB/RPM/AppImage) are available from GitHub Releases. A Flatpak is available on Flathub (packaging repo: flathub/org.meshtastic.MeshtasticDesktop).

Documentation

Both sites are deployed to GitHub Pages automatically on every push to T383838main.


β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Site β”‚ URL β”‚ Contents β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ User & Developer Docs β”‚ >Architecture >>>Modern Android Development (MAD) The app follows modern Android development practices, built on top of a shared Kotlin Multiplatform (KMP) Core: β€’ |!KMP Modules:|! Business logic (|BT383838|Fdddcore:domain|f|b), data sources (|BT383838|Fdddcore:data|f|b, |BT383838|Fdddcore:database|f|b, |BT383838|Fdddcore:datastore|f|b), and communications (|BT383838|Fdddcore:network|f|b, |BT383838|Fdddcore:ble|f|b) are entirely platform-agnostic, targeting Android and Compose Desktop. β€’ |!UI:|! JetBrains Compose Multiplatform (Material 3) using Compose Multiplatform resources. β€’ |!State Management:|! Unidirectional Data Flow (UDF) with ViewModels, Coroutines, and Flow. β€’ |!Dependency Injection:|! Koin with Koin Annotations (K2 Compiler Plugin). β€’ |!Navigation:|! JetBrains Navigation 3 (Multiplatform routing with RESTful deep linking). β€’ |!Data Layer:|! Repository pattern with Room KMP (local DB), DataStore (prefs), and Protobuf (device comms). Protobuf models are consumed from the upstream |BT383838|Fdddorg.meshtastic:protobufs|f|b Maven artifact, pinned in |BT383838|Fdddgradle/libs.versions.toml|f|b. >>>Bluetooth Low Energy (BLE) The BLE stack uses a multiplatform interface-driven architecture. Platform-agnostic interfaces live in |BT383838|FdddcommonMain|f|b, utilizing the |!Kable|! multiplatform BLE library to handle device communication across all supported targets (Android, Desktop). This provides a robust, Coroutine-based architecture for reliable device communication while remaining fully KMP compatible. See |_|!|[core/ble/README.md|:/page/blob.mu|g=meshtastic|r=Meshtastic-Android|ref=HEAD|path=core/ble/README.md">mesht for details.

Module Documentation

Each module has its own README with details on its responsibilities, API surface, and internal design.


β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Module β”‚ Description β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ core/do.

Integration

The app includes a built-in Local TAK Server feature that can be enabled in settings. This runs a loopback-only TLS (mTLS) server on port 8089 so ATAK on the same device can connect directly and route its traffic over the mesh.

Building the Android App
β”‚ [!WARNING] Debug and release builds can be installed concurrently. This is solely to enable
β”‚ smoother development, and you should avoid running both apps simultaneously. To ensure proper
β”‚ function, force quit the app not in use.

https://meshtastic.org/docs/development/android/

Note: when building the T383838google flavor locally you will need to supply your own Google Maps Android SDK api key as T383838MAPS_API_KEY in T383838secrets.properties (repo root β€” create the file if it doesn't exist) in order to use Google Maps. Without it, T383838secrets.defaults.properties supplies a placeholder so the build still succeeds, but map tiles will not load.
e.g.
T282828
T8b949e# secrets.properties
Te6edf3MAPS_API_KEYTff7b72=Ta5d6ffyour_google_maps_api_key_here


Contributing guidelines

For detailed instructions on how to contribute, please see our CONTRIBUTING.md file.
For details on our release process, see the RELEASE_PROCESS.md file.

Repository Statistics


Copyright 2025-2026, Meshtastic LLC. GPL-3.0 license

Served by rngit 1.4.2 - Generated in 0.26s